#ifndef COMPROTOCOL_H
#define COMPROTOCOL_H

//通信协议结构
/*| 帧头 | 长度 | 设备地址1 | 数据1\命令 | 设备地址2 | 数据2\命令 | 设备地址3 | 数据3\命令 | 设备地址4 | 数据4\命令 |  帧尾  |
   2Byte  1Byte    2Byte       2Byte       2Byte      2Byte       2Byte       2Byte       2Byte      2Byte     1Byte  */

#include <stdint.h>

#define PACK_HEADER1 0x5A//帧头1
#define PACK_HEADER2 0xA5//帧头2
#define PACK_TAIL 0x8A//帧尾
#define DEVICE1_ADDR 0xC1D1//设备1地址
#define DEVICE2_ADDR 0xC2D2//设备2地址
#define DEVICE3_ADDR 0xC3D3//设备3地址
#define DEVICE4_ADDR 0xC4D4//设备4地址
#define CMD_ZEROSTING 0XFF0F//设备置0命令

#define MAX_DEVICE_NMU 4//从设备数量

typedef struct{
    uint16_t address;
    uint8_t data[2];
}Device;

#pragma pack(1)
typedef struct p{
    uint8_t start1=PACK_HEADER1;
    uint8_t start2=PACK_HEADER2;
    uint8_t data_length=16;
    Device datapack[MAX_DEVICE_NMU];
    uint8_t end=PACK_TAIL;
}SendPack;
#pragma pack()

#endif // COMPROTOCOL_H
